[INFO] fetching crate kraken-ws-sdk 0.3.1...
[INFO] testing kraken-ws-sdk-0.3.1 against try#0abe69e6c16114311cc2700e972492e64d69c28f for pr-154065-1
[INFO] extracting crate kraken-ws-sdk 0.3.1 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate kraken-ws-sdk 0.3.1
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate kraken-ws-sdk 0.3.1
[INFO] tweaked toml for crates.io crate kraken-ws-sdk 0.3.1 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate kraken-ws-sdk 0.3.1 on toolchain 0abe69e6c16114311cc2700e972492e64d69c28f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate kraken-ws-sdk 0.3.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 85d91450ffca19a59a89512d1773f4fc6d90bb049d98e154bd50f40b1ceaafa2
[INFO] running `Command { std: "docker" "start" "-a" "85d91450ffca19a59a89512d1773f4fc6d90bb049d98e154bd50f40b1ceaafa2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "85d91450ffca19a59a89512d1773f4fc6d90bb049d98e154bd50f40b1ceaafa2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "85d91450ffca19a59a89512d1773f4fc6d90bb049d98e154bd50f40b1ceaafa2", kill_on_drop: false }`
[INFO] [stdout] 85d91450ffca19a59a89512d1773f4fc6d90bb049d98e154bd50f40b1ceaafa2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 18c5f7fb765377314f7fab7fb7c2ae2734d5801c73f4b6e53be7b20a710749ce
[INFO] running `Command { std: "docker" "start" "-a" "18c5f7fb765377314f7fab7fb7c2ae2734d5801c73f4b6e53be7b20a710749ce", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]    Compiling libc v0.2.178
[INFO] [stderr]    Compiling cc v1.2.49
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling http v0.2.12
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling openssl-probe v0.1.6
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling indexmap v2.12.1
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling rust_decimal v1.39.0
[INFO] [stderr]    Compiling data-encoding v2.9.0
[INFO] [stderr]    Compiling rustls-pemfile v1.0.4
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling http-body v0.4.6
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.7
[INFO] [stderr]    Compiling socket2 v0.6.1
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling uuid v1.19.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling rust_decimal_macros v1.39.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling tokio v1.48.0
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling tracing v0.1.43
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.7
[INFO] [stderr]    Compiling tokio-util v0.7.17
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tungstenite v0.20.1
[INFO] [stderr]    Compiling h2 v0.3.27
[INFO] [stderr]    Compiling tokio-tungstenite v0.20.1
[INFO] [stderr]    Compiling hyper v0.14.32
[INFO] [stderr]    Compiling hyper-tls v0.5.0
[INFO] [stderr]    Compiling reqwest v0.11.27
[INFO] [stderr]    Compiling kraken-ws-sdk v0.3.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections`
[INFO] [stdout]  --> src/error.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `Utc`
[INFO] [stdout]  --> src/exchange.rs:9:14
[INFO] [stdout]   |
[INFO] [stdout] 9 | use chrono::{DateTime, Utc};
[INFO] [stdout]   |              ^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_decimal::Decimal`
[INFO] [stdout]   --> src/exchange.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rust_decimal::Decimal;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PriceLevel`
[INFO] [stdout]   --> src/orderflow.rs:40:19
[INFO] [stdout]    |
[INFO] [stdout] 40 | use crate::data::{PriceLevel, TradeData, TradeSide};
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AssetBalance` and `Balances`
[INFO] [stdout]  --> src/private_ws.rs:9:75
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::trading::{Execution, Order, OrderSide, OrderStatus, OrderType, Balances, AssetBalance};
[INFO] [stdout]   |                                                                           ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> src/private_ws.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CancelResponse`
[INFO] [stdout]  --> src/batch_orders.rs:5:62
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::trading::{OrderRequest, OrderResponse, OrderSide, CancelResponse};
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::SdkError`
[INFO] [stdout]  --> src/batch_orders.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::error::SdkError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserialize`
[INFO] [stdout]  --> src/batch_orders.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client.rs:155:44
[INFO] [stdout]     |
[INFO] [stdout] 155 |     async fn start_message_loop(&mut self, mut ws_stream: WebSocketStream<tokio_tungstenite::MaybeTlsStream<tokio::net::TcpStream>>...
[INFO] [stdout]     |                                            ----^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_clone`
[INFO] [stdout]    --> src/client.rs:172:13
[INFO] [stdout]     |
[INFO] [stdout] 172 |         let sender_clone = tx.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_clone`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `subscription_message`
[INFO] [stdout]   --> src/client.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let subscription_message = self.subscription_manager.create_subscription_message(&channels)?;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_subscription_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unsubscription_message`
[INFO] [stdout]   --> src/client.rs:95:13
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let unsubscription_message = self.subscription_manager.create_unsubscription_message(&channels)?;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_unsubscription_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/client.rs:250:27
[INFO] [stdout]     |
[INFO] [stdout] 250 |             Message::Ping(data) => {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbol`
[INFO] [stdout]    --> src/exchange.rs:419:42
[INFO] [stdout]     |
[INFO] [stdout] 419 |     async fn subscribe_ticker(&mut self, symbol: &Symbol) -> Result<(), SdkError> {
[INFO] [stdout]     |                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_symbol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbol`
[INFO] [stdout]    --> src/exchange.rs:423:42
[INFO] [stdout]     |
[INFO] [stdout] 423 |     async fn subscribe_trades(&mut self, symbol: &Symbol) -> Result<(), SdkError> {
[INFO] [stdout]     |                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_symbol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]    --> src/exchange.rs:427:62
[INFO] [stdout]     |
[INFO] [stdout] 427 |     async fn subscribe_orderbook(&mut self, symbol: &Symbol, depth: u32) -> Result<(), SdkError> {
[INFO] [stdout]     |                                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbol`
[INFO] [stdout]    --> src/exchange.rs:427:45
[INFO] [stdout]     |
[INFO] [stdout] 427 |     async fn subscribe_orderbook(&mut self, symbol: &Symbol, depth: u32) -> Result<(), SdkError> {
[INFO] [stdout]     |                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_symbol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `process_start`
[INFO] [stdout]    --> src/latency.rs:201:13
[INFO] [stdout]     |
[INFO] [stdout] 201 |         let process_start = Instant::now();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/client.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct KrakenWsClient {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     config: ClientConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `handle_message`, `process_message`, and `handle_reconnection` are never used
[INFO] [stdout]    --> src/client.rs:270:14
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl KrakenWsClient {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 270 |     async fn handle_message(&self, message: WebSocketMessage) -> Result<(), SdkError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |     async fn process_message(&self, message: &str) -> Result<(), ProcessingError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     async fn handle_reconnection(&self) -> Result<(), SdkError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]    --> src/exchange.rs:177:5
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub struct KrakenAdapter {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 177 |     config: ExchangeConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config` and `symbol_mapper` are never read
[INFO] [stdout]    --> src/exchange.rs:345:5
[INFO] [stdout]     |
[INFO] [stdout] 344 | pub struct BinanceAdapter {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 345 |     config: ExchangeConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     symbol_mapper: BinanceSymbolMapper,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `level` is never read
[INFO] [stdout]    --> src/middleware.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub struct LoggingMiddleware {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] 101 |     level: tracing::Level,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `price` and `timestamp` are never read
[INFO] [stdout]    --> src/orderflow.rs:131:5
[INFO] [stdout]     |
[INFO] [stdout] 130 | struct LevelSnapshot {
[INFO] [stdout]     |        ------------- fields in this struct
[INFO] [stdout] 131 |     price: Decimal,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 132 |     volume: Decimal,
[INFO] [stdout] 133 |     timestamp: DateTime<Utc>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LevelSnapshot` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]    --> src/orderflow.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 151 | struct BookSnapshot {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 157 |     timestamp: DateTime<Utc>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BookSnapshot` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `price` and `sequence` are never read
[INFO] [stdout]    --> src/spoofing_detection.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 111 | struct PendingAppearance {
[INFO] [stdout]     |        ----------------- fields in this struct
[INFO] [stdout] 112 |     symbol: String,
[INFO] [stdout] 113 |     price: Decimal,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     sequence: u64,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PendingAppearance` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `extract_string`, `extract_decimal`, and `extract_timestamp` are never used
[INFO] [stdout]   --> src/parser.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl KrakenDataParser {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     fn extract_string(&self, obj: &Value, field: &str) -> Result<String, ParseError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     fn extract_decimal(&self, obj: &Value, field: &str) -> Result<Decimal, ParseError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     fn extract_timestamp(&self, obj: &Value, field: &str) -> Result<DateTime<Utc>, ParseError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `validate_message` and `handle_malformed_message` are never used
[INFO] [stdout]    --> src/parser.rs:476:8
[INFO] [stdout]     |
[INFO] [stdout] 383 | impl MessageHandler {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 476 |     fn validate_message(&self, message: &str) -> Result<(), ProcessingError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 495 |     fn handle_malformed_message(&self, message: &str, error: &ProcessingError) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `endpoint`, `auto_reconnect`, and `max_reconnect_attempts` are never read
[INFO] [stdout]   --> src/sdk.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct KrakenSDK {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 73 |     endpoint: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 74 |     auto_reconnect: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 75 |     max_reconnect_attempts: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `dispatch_ticker`, `dispatch_orderbook`, and `dispatch_trade` are never used
[INFO] [stdout]    --> src/sdk.rs:255:19
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl KrakenSDK {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub(crate) fn dispatch_ticker(&self, data: TickerData) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub(crate) fn dispatch_orderbook(&self, data: OrderBookUpdate) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub(crate) fn dispatch_trade(&self, data: TradeData) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `data` and `received_at` are never read
[INFO] [stdout]   --> src/sequencing.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | struct PendingMessage {
[INFO] [stdout]    |        -------------- fields in this struct
[INFO] [stdout] 34 |     sequence: u64,
[INFO] [stdout] 35 |     data: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 36 |     received_at: DateTime<Utc>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PendingMessage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/telemetry.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct MetricsRegistry {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 98 |     config: TelemetryConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MetricsRegistry` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `KrakenWsClient`
[INFO] [stdout]  --> src/main.rs:1:35
[INFO] [stdout]   |
[INFO] [stdout] 1 | use kraken_ws_sdk::{init_logging, KrakenWsClient};
[INFO] [stdout]   |                                   ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 02s
[INFO] running `Command { std: "docker" "inspect" "18c5f7fb765377314f7fab7fb7c2ae2734d5801c73f4b6e53be7b20a710749ce", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "18c5f7fb765377314f7fab7fb7c2ae2734d5801c73f4b6e53be7b20a710749ce", kill_on_drop: false }`
[INFO] [stdout] 18c5f7fb765377314f7fab7fb7c2ae2734d5801c73f4b6e53be7b20a710749ce
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7fb7f29ba04ef76ba00e960c2a3d6972715aef938860b462ef2842bdc9942e39
[INFO] running `Command { std: "docker" "start" "-a" "7fb7f29ba04ef76ba00e960c2a3d6972715aef938860b462ef2842bdc9942e39", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]    Compiling zerocopy-derive v0.8.31
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling tokio v1.48.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling clap_lex v0.7.6
[INFO] [stderr]    Compiling uuid v1.19.0
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling quickcheck_macros v1.1.0
[INFO] [stderr]    Compiling clap_builder v4.5.53
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling url v2.5.7
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling rust_decimal v1.39.0
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling env_logger v0.8.4
[INFO] [stderr]    Compiling tokio-util v0.7.17
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tokio-stream v0.1.17
[INFO] [stderr]    Compiling clap v4.5.53
[INFO] [stderr]    Compiling tokio-test v0.4.4
[INFO] [stderr]    Compiling h2 v0.3.27
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]    Compiling tungstenite v0.20.1
[INFO] [stderr]    Compiling quickcheck v1.0.3
[INFO] [stderr]    Compiling tokio-tungstenite v0.20.1
[INFO] [stderr]    Compiling hyper v0.14.32
[INFO] [stderr]    Compiling hyper-tls v0.5.0
[INFO] [stderr]    Compiling reqwest v0.11.27
[INFO] [stderr]    Compiling kraken-ws-sdk v0.3.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections`
[INFO] [stdout]  --> src/error.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `Utc`
[INFO] [stdout]  --> src/exchange.rs:9:14
[INFO] [stdout]   |
[INFO] [stdout] 9 | use chrono::{DateTime, Utc};
[INFO] [stdout]   |              ^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_decimal::Decimal`
[INFO] [stdout]   --> src/exchange.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rust_decimal::Decimal;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PriceLevel`
[INFO] [stdout]   --> src/orderflow.rs:40:19
[INFO] [stdout]    |
[INFO] [stdout] 40 | use crate::data::{PriceLevel, TradeData, TradeSide};
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections`
[INFO] [stdout]  --> src/error.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `Utc`
[INFO] [stdout]  --> src/exchange.rs:9:14
[INFO] [stdout]   |
[INFO] [stdout] 9 | use chrono::{DateTime, Utc};
[INFO] [stdout]   |              ^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_decimal::Decimal`
[INFO] [stdout]   --> src/exchange.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rust_decimal::Decimal;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AssetBalance` and `Balances`
[INFO] [stdout]  --> src/private_ws.rs:9:75
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::trading::{Execution, Order, OrderSide, OrderStatus, OrderType, Balances, AssetBalance};
[INFO] [stdout]   |                                                                           ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> src/private_ws.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PriceLevel`
[INFO] [stdout]   --> src/orderflow.rs:40:19
[INFO] [stdout]    |
[INFO] [stdout] 40 | use crate::data::{PriceLevel, TradeData, TradeSide};
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CancelResponse`
[INFO] [stdout]  --> src/batch_orders.rs:5:62
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::trading::{OrderRequest, OrderResponse, OrderSide, CancelResponse};
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::SdkError`
[INFO] [stdout]  --> src/batch_orders.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::error::SdkError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserialize`
[INFO] [stdout]  --> src/batch_orders.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AssetBalance` and `Balances`
[INFO] [stdout]  --> src/private_ws.rs:9:75
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::trading::{Execution, Order, OrderSide, OrderStatus, OrderType, Balances, AssetBalance};
[INFO] [stdout]   |                                                                           ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> src/private_ws.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CancelResponse`
[INFO] [stdout]  --> src/batch_orders.rs:5:62
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::trading::{OrderRequest, OrderResponse, OrderSide, CancelResponse};
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::SdkError`
[INFO] [stdout]  --> src/batch_orders.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::error::SdkError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserialize`
[INFO] [stdout]  --> src/batch_orders.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client.rs:155:44
[INFO] [stdout]     |
[INFO] [stdout] 155 |     async fn start_message_loop(&mut self, mut ws_stream: WebSocketStream<tokio_tungstenite::MaybeTlsStream<tokio::net::TcpStream>>...
[INFO] [stdout]     |                                            ----^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client.rs:155:44
[INFO] [stdout]     |
[INFO] [stdout] 155 |     async fn start_message_loop(&mut self, mut ws_stream: WebSocketStream<tokio_tungstenite::MaybeTlsStream<tokio::net::TcpStream>>...
[INFO] [stdout]     |                                            ----^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_clone`
[INFO] [stdout]    --> src/client.rs:172:13
[INFO] [stdout]     |
[INFO] [stdout] 172 |         let sender_clone = tx.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_clone`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `subscription_message`
[INFO] [stdout]   --> src/client.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let subscription_message = self.subscription_manager.create_subscription_message(&channels)?;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_subscription_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unsubscription_message`
[INFO] [stdout]   --> src/client.rs:95:13
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let unsubscription_message = self.subscription_manager.create_unsubscription_message(&channels)?;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_unsubscription_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/client.rs:250:27
[INFO] [stdout]     |
[INFO] [stdout] 250 |             Message::Ping(data) => {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_clone`
[INFO] [stdout]    --> src/client.rs:172:13
[INFO] [stdout]     |
[INFO] [stdout] 172 |         let sender_clone = tx.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_clone`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `subscription_message`
[INFO] [stdout]   --> src/client.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let subscription_message = self.subscription_manager.create_subscription_message(&channels)?;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_subscription_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unsubscription_message`
[INFO] [stdout]   --> src/client.rs:95:13
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let unsubscription_message = self.subscription_manager.create_unsubscription_message(&channels)?;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_unsubscription_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/client.rs:250:27
[INFO] [stdout]     |
[INFO] [stdout] 250 |             Message::Ping(data) => {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbol`
[INFO] [stdout]    --> src/exchange.rs:419:42
[INFO] [stdout]     |
[INFO] [stdout] 419 |     async fn subscribe_ticker(&mut self, symbol: &Symbol) -> Result<(), SdkError> {
[INFO] [stdout]     |                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_symbol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbol`
[INFO] [stdout]    --> src/exchange.rs:423:42
[INFO] [stdout]     |
[INFO] [stdout] 423 |     async fn subscribe_trades(&mut self, symbol: &Symbol) -> Result<(), SdkError> {
[INFO] [stdout]     |                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_symbol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]    --> src/exchange.rs:427:62
[INFO] [stdout]     |
[INFO] [stdout] 427 |     async fn subscribe_orderbook(&mut self, symbol: &Symbol, depth: u32) -> Result<(), SdkError> {
[INFO] [stdout]     |                                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbol`
[INFO] [stdout]    --> src/exchange.rs:427:45
[INFO] [stdout]     |
[INFO] [stdout] 427 |     async fn subscribe_orderbook(&mut self, symbol: &Symbol, depth: u32) -> Result<(), SdkError> {
[INFO] [stdout]     |                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_symbol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `process_start`
[INFO] [stdout]    --> src/latency.rs:201:13
[INFO] [stdout]     |
[INFO] [stdout] 201 |         let process_start = Instant::now();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbol`
[INFO] [stdout]    --> src/exchange.rs:419:42
[INFO] [stdout]     |
[INFO] [stdout] 419 |     async fn subscribe_ticker(&mut self, symbol: &Symbol) -> Result<(), SdkError> {
[INFO] [stdout]     |                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_symbol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbol`
[INFO] [stdout]    --> src/exchange.rs:423:42
[INFO] [stdout]     |
[INFO] [stdout] 423 |     async fn subscribe_trades(&mut self, symbol: &Symbol) -> Result<(), SdkError> {
[INFO] [stdout]     |                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_symbol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]    --> src/exchange.rs:427:62
[INFO] [stdout]     |
[INFO] [stdout] 427 |     async fn subscribe_orderbook(&mut self, symbol: &Symbol, depth: u32) -> Result<(), SdkError> {
[INFO] [stdout]     |                                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbol`
[INFO] [stdout]    --> src/exchange.rs:427:45
[INFO] [stdout]     |
[INFO] [stdout] 427 |     async fn subscribe_orderbook(&mut self, symbol: &Symbol, depth: u32) -> Result<(), SdkError> {
[INFO] [stdout]     |                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_symbol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `process_start`
[INFO] [stdout]    --> src/latency.rs:201:13
[INFO] [stdout]     |
[INFO] [stdout] 201 |         let process_start = Instant::now();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/client.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct KrakenWsClient {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     config: ClientConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `handle_message`, `process_message`, and `handle_reconnection` are never used
[INFO] [stdout]    --> src/client.rs:270:14
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl KrakenWsClient {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 270 |     async fn handle_message(&self, message: WebSocketMessage) -> Result<(), SdkError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |     async fn process_message(&self, message: &str) -> Result<(), ProcessingError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     async fn handle_reconnection(&self) -> Result<(), SdkError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]    --> src/exchange.rs:177:5
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub struct KrakenAdapter {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 177 |     config: ExchangeConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config` and `symbol_mapper` are never read
[INFO] [stdout]    --> src/exchange.rs:345:5
[INFO] [stdout]     |
[INFO] [stdout] 344 | pub struct BinanceAdapter {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 345 |     config: ExchangeConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     symbol_mapper: BinanceSymbolMapper,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `level` is never read
[INFO] [stdout]    --> src/middleware.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub struct LoggingMiddleware {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] 101 |     level: tracing::Level,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `price` and `timestamp` are never read
[INFO] [stdout]    --> src/orderflow.rs:131:5
[INFO] [stdout]     |
[INFO] [stdout] 130 | struct LevelSnapshot {
[INFO] [stdout]     |        ------------- fields in this struct
[INFO] [stdout] 131 |     price: Decimal,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 132 |     volume: Decimal,
[INFO] [stdout] 133 |     timestamp: DateTime<Utc>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LevelSnapshot` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]    --> src/orderflow.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 151 | struct BookSnapshot {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 157 |     timestamp: DateTime<Utc>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BookSnapshot` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `price` and `sequence` are never read
[INFO] [stdout]    --> src/spoofing_detection.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 111 | struct PendingAppearance {
[INFO] [stdout]     |        ----------------- fields in this struct
[INFO] [stdout] 112 |     symbol: String,
[INFO] [stdout] 113 |     price: Decimal,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     sequence: u64,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PendingAppearance` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `extract_string`, `extract_decimal`, and `extract_timestamp` are never used
[INFO] [stdout]   --> src/parser.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl KrakenDataParser {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     fn extract_string(&self, obj: &Value, field: &str) -> Result<String, ParseError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     fn extract_decimal(&self, obj: &Value, field: &str) -> Result<Decimal, ParseError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     fn extract_timestamp(&self, obj: &Value, field: &str) -> Result<DateTime<Utc>, ParseError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `validate_message` and `handle_malformed_message` are never used
[INFO] [stdout]    --> src/parser.rs:476:8
[INFO] [stdout]     |
[INFO] [stdout] 383 | impl MessageHandler {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 476 |     fn validate_message(&self, message: &str) -> Result<(), ProcessingError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 495 |     fn handle_malformed_message(&self, message: &str, error: &ProcessingError) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `endpoint`, `auto_reconnect`, and `max_reconnect_attempts` are never read
[INFO] [stdout]   --> src/sdk.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct KrakenSDK {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 73 |     endpoint: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 74 |     auto_reconnect: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 75 |     max_reconnect_attempts: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `dispatch_ticker`, `dispatch_orderbook`, and `dispatch_trade` are never used
[INFO] [stdout]    --> src/sdk.rs:255:19
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl KrakenSDK {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub(crate) fn dispatch_ticker(&self, data: TickerData) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub(crate) fn dispatch_orderbook(&self, data: OrderBookUpdate) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub(crate) fn dispatch_trade(&self, data: TradeData) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `data` and `received_at` are never read
[INFO] [stdout]   --> src/sequencing.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | struct PendingMessage {
[INFO] [stdout]    |        -------------- fields in this struct
[INFO] [stdout] 34 |     sequence: u64,
[INFO] [stdout] 35 |     data: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 36 |     received_at: DateTime<Utc>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PendingMessage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/telemetry.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct MetricsRegistry {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 98 |     config: TelemetryConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MetricsRegistry` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/client.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct KrakenWsClient {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     config: ClientConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `handle_message`, `process_message`, and `handle_reconnection` are never used
[INFO] [stdout]    --> src/client.rs:270:14
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl KrakenWsClient {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 270 |     async fn handle_message(&self, message: WebSocketMessage) -> Result<(), SdkError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |     async fn process_message(&self, message: &str) -> Result<(), ProcessingError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     async fn handle_reconnection(&self) -> Result<(), SdkError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]    --> src/exchange.rs:177:5
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub struct KrakenAdapter {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 177 |     config: ExchangeConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config` and `symbol_mapper` are never read
[INFO] [stdout]    --> src/exchange.rs:345:5
[INFO] [stdout]     |
[INFO] [stdout] 344 | pub struct BinanceAdapter {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 345 |     config: ExchangeConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     symbol_mapper: BinanceSymbolMapper,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `level` is never read
[INFO] [stdout]    --> src/middleware.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub struct LoggingMiddleware {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] 101 |     level: tracing::Level,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `price` and `timestamp` are never read
[INFO] [stdout]    --> src/orderflow.rs:131:5
[INFO] [stdout]     |
[INFO] [stdout] 130 | struct LevelSnapshot {
[INFO] [stdout]     |        ------------- fields in this struct
[INFO] [stdout] 131 |     price: Decimal,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 132 |     volume: Decimal,
[INFO] [stdout] 133 |     timestamp: DateTime<Utc>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LevelSnapshot` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]    --> src/orderflow.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 151 | struct BookSnapshot {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 157 |     timestamp: DateTime<Utc>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BookSnapshot` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `price` and `sequence` are never read
[INFO] [stdout]    --> src/spoofing_detection.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 111 | struct PendingAppearance {
[INFO] [stdout]     |        ----------------- fields in this struct
[INFO] [stdout] 112 |     symbol: String,
[INFO] [stdout] 113 |     price: Decimal,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     sequence: u64,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PendingAppearance` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `extract_string`, `extract_decimal`, and `extract_timestamp` are never used
[INFO] [stdout]   --> src/parser.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl KrakenDataParser {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     fn extract_string(&self, obj: &Value, field: &str) -> Result<String, ParseError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     fn extract_decimal(&self, obj: &Value, field: &str) -> Result<Decimal, ParseError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     fn extract_timestamp(&self, obj: &Value, field: &str) -> Result<DateTime<Utc>, ParseError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `validate_message` and `handle_malformed_message` are never used
[INFO] [stdout]    --> src/parser.rs:476:8
[INFO] [stdout]     |
[INFO] [stdout] 383 | impl MessageHandler {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 476 |     fn validate_message(&self, message: &str) -> Result<(), ProcessingError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 495 |     fn handle_malformed_message(&self, message: &str, error: &ProcessingError) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `endpoint`, `auto_reconnect`, and `max_reconnect_attempts` are never read
[INFO] [stdout]   --> src/sdk.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct KrakenSDK {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 73 |     endpoint: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 74 |     auto_reconnect: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 75 |     max_reconnect_attempts: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `dispatch_ticker`, `dispatch_orderbook`, and `dispatch_trade` are never used
[INFO] [stdout]    --> src/sdk.rs:255:19
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl KrakenSDK {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub(crate) fn dispatch_ticker(&self, data: TickerData) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub(crate) fn dispatch_orderbook(&self, data: OrderBookUpdate) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub(crate) fn dispatch_trade(&self, data: TradeData) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `data` and `received_at` are never read
[INFO] [stdout]   --> src/sequencing.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | struct PendingMessage {
[INFO] [stdout]    |        -------------- fields in this struct
[INFO] [stdout] 34 |     sequence: u64,
[INFO] [stdout] 35 |     data: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 36 |     received_at: DateTime<Utc>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PendingMessage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/telemetry.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct MetricsRegistry {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 98 |     config: TelemetryConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MetricsRegistry` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected item after attributes
[INFO] [stdout]    --> tests/property_tests.rs:324:1
[INFO] [stdout]     |
[INFO] [stdout] 324 | #[cfg(test)]
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `kraken-ws-sdk` (test "property_tests") due to 1 previous error
[INFO] [stdout] warning: unused import: `init_logging`
[INFO] [stdout]  --> tests/integration_tests.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     init_logging, Channel, ClientConfig, DataType, EventCallback, KrakenWsClient,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused import: `tokio_test`
[INFO] [stdout]   --> tests/integration_tests.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio_test;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `KrakenWsClient`
[INFO] [stdout]  --> src/main.rs:1:35
[INFO] [stdout]   |
[INFO] [stdout] 1 | use kraken_ws_sdk::{init_logging, KrakenWsClient};
[INFO] [stdout]   |                                   ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `KrakenWsClient`
[INFO] [stdout]  --> src/main.rs:1:35
[INFO] [stdout]   |
[INFO] [stdout] 1 | use kraken_ws_sdk::{init_logging, KrakenWsClient};
[INFO] [stdout]   |                                   ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `kraken_ws_sdk::prelude::*`
[INFO] [stdout]  --> examples/sequencing_demo.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use kraken_ws_sdk::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> examples/advanced_usage.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `data::*`
[INFO] [stdout]  --> tests/parser_tests.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     data::*,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print_stats` is never used
[INFO] [stdout]   --> examples/advanced_usage.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl AdvancedCallback {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |     fn print_stats(&self) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `KrakenSDK` in this scope
[INFO] [stdout]   --> examples/sdk_demo.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let sdk = KrakenSDK::default();
[INFO] [stdout]    |               ^^^^^^^^^ use of undeclared type `KrakenSDK`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout]  6 + use kraken_ws_sdk::KrakenSDK;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `start_time` is never read
[INFO] [stdout]    --> examples/advanced_usage.rs:144:5
[INFO] [stdout]     |
[INFO] [stdout] 143 | struct PerformanceCallback {
[INFO] [stdout]     |        ------------------- field in this struct
[INFO] [stdout] 144 |     start_time: std::time::Instant,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_throughput` is never used
[INFO] [stdout]    --> examples/advanced_usage.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout] 148 | impl PerformanceCallback {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn get_throughput(&self) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `kraken-ws-sdk` (example "sdk_demo") due to 1 previous error
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/integration_tests.rs:246:9
[INFO] [stdout]     |
[INFO] [stdout] 246 |     let mut client = KrakenWsClient::new(config);
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_ticker_count`, `get_trade_count`, `get_orderbook_count`, and `get_error_count` are never used
[INFO] [stdout]   --> tests/integration_tests.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl TestCallback {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     fn get_ticker_count(&self) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn get_trade_count(&self) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     fn get_orderbook_count(&self) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     fn get_error_count(&self) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `with_env_filter` found for struct `SubscriberBuilder<N, E, F, W>` in the current scope
[INFO] [stdout]   --> examples/trading_demo.rs:27:10
[INFO] [stdout]    |
[INFO] [stdout] 26 | /     tracing_subscriber::fmt()
[INFO] [stdout] 27 | |         .with_env_filter("info,kraken_ws_sdk=debug")
[INFO] [stdout]    | |_________-^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `with_file` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 27 -         .with_env_filter("info,kraken_ws_sdk=debug")
[INFO] [stdout] 27 +         .with_file("info,kraken_ws_sdk=debug")
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parser`
[INFO] [stdout]    --> tests/unit_tests.rs:223:9
[INFO] [stdout]     |
[INFO] [stdout] 223 |     let parser = KrakenDataParser::new();
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parser`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handler`
[INFO] [stdout]    --> tests/unit_tests.rs:266:9
[INFO] [stdout]     |
[INFO] [stdout] 266 |     let handler = MessageHandler::new(parser, dispatcher);
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_handler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `kraken-ws-sdk` (example "trading_demo") due to 1 previous error
[INFO] [stdout] warning: method `print_stats` is never used
[INFO] [stdout]   --> examples/kraken_live_test.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl LiveTestCallback {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     fn print_stats(&self) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "7fb7f29ba04ef76ba00e960c2a3d6972715aef938860b462ef2842bdc9942e39", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7fb7f29ba04ef76ba00e960c2a3d6972715aef938860b462ef2842bdc9942e39", kill_on_drop: false }`
[INFO] [stdout] 7fb7f29ba04ef76ba00e960c2a3d6972715aef938860b462ef2842bdc9942e39
